summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-08-12 13:27:07 -0400
committerJules Laplace <jules@okfoc.us>2015-08-12 13:27:07 -0400
commitcc3d0bf036dc934494bf517ebae88bd8544b9b06 (patch)
tree0a5da30ca9ec3ee6e75af3550e563a1cf6586d81
parentdd4f0178c7bcb5d14e1308e3877c5ab02eddf000 (diff)
add artist privilege
-rw-r--r--public/assets/javascripts/ui/site/EditSubscriptionModal.js1
-rw-r--r--public/assets/javascripts/ui/site/StaffView.js23
-rw-r--r--server/lib/schemas/User.js1
-rw-r--r--server/lib/views/staff/index.js16
-rw-r--r--server/lib/webhook/webhook.js1
-rw-r--r--views/staff/users/show.ejs11
6 files changed, 50 insertions, 3 deletions
diff --git a/public/assets/javascripts/ui/site/EditSubscriptionModal.js b/public/assets/javascripts/ui/site/EditSubscriptionModal.js
index 1033114..c1dc9f8 100644
--- a/public/assets/javascripts/ui/site/EditSubscriptionModal.js
+++ b/public/assets/javascripts/ui/site/EditSubscriptionModal.js
@@ -97,6 +97,7 @@ var EditSubscriptionModal = ModalView.extend({
basic: 1,
pro: 2,
custom: 3,
+ artist: 4,
},
loaded: false,
diff --git a/public/assets/javascripts/ui/site/StaffView.js b/public/assets/javascripts/ui/site/StaffView.js
index 59649e3..97f86c2 100644
--- a/public/assets/javascripts/ui/site/StaffView.js
+++ b/public/assets/javascripts/ui/site/StaffView.js
@@ -5,12 +5,14 @@ var StaffView = View.extend({
"click #toggle-staff": "toggleStaff",
"click #toggle-featured": "toggleFeatured",
"click #toggle-stock": "toggleStock",
+ "click #toggle-artist": "toggleArtist",
},
initialize: function() {
this.$toggleStaff = $("#toggle-staff")
this.$toggleFeatured = $("#toggle-featured")
this.$toggleStock = $("#toggle-stock")
+ this.$toggleArtist = $("#toggle-artist")
this.$mediaEmbed = $("#media-embed")
if (this.$toggleStaff.length && this.$toggleStaff.data().isstaff) {
this.$toggleStaff.html("Is Staff")
@@ -21,6 +23,9 @@ var StaffView = View.extend({
if (this.$toggleStock.length && this.$toggleStock.data().stock) {
this.$toggleStock.html("Layout is Stock")
}
+ if (this.$toggleArtist.length && this.$toggleArtist.data().isartist) {
+ this.$toggleArtist.html("Is Artist")
+ }
if (this.$mediaEmbed.length) {
var media = this.$mediaEmbed.data()
this.$mediaEmbed.html( Parser.tag( media ) )
@@ -75,7 +80,6 @@ var StaffView = View.extend({
},
toggleStock: function(){
- console.log("stock")
var state = ! this.$toggleStock.data().stock
$.ajax({
type: "put",
@@ -93,4 +97,21 @@ var StaffView = View.extend({
})
},
+ toggleArtist: function(){
+ var state = ! this.$toggleArtist.data().isartist
+ $.ajax({
+ type: "put",
+ dataType: "json",
+ url: window.location.href + "/artist",
+ data: {
+ state: state,
+ _csrf: $("#_csrf").val(),
+ },
+ success: function(data){
+ this.$toggleArtist.data("stock", data.state)
+ this.$toggleArtist.html(data.state ? "Is Artist" : "Make Artist")
+ $("#isArtist").html(data.state ? "yes" : "no")
+ }.bind(this)
+ })
+ },
})
diff --git a/server/lib/schemas/User.js b/server/lib/schemas/User.js
index e6e7f03..829b360 100644
--- a/server/lib/schemas/User.js
+++ b/server/lib/schemas/User.js
@@ -67,6 +67,7 @@ var UserSchema = new mongoose.Schema({
twitterName: { type: String, default: "" },
facebookUrl: { type: String, default: "" },
isStaff: { type: Boolean, default: false },
+ isArtist: { type: Boolean, default: false },
subscription_id: { type: mongoose.Schema.ObjectId },
created_at: { type: Date },
updated_at: { type: Date },
diff --git a/server/lib/views/staff/index.js b/server/lib/views/staff/index.js
index 6a56238..033fc88 100644
--- a/server/lib/views/staff/index.js
+++ b/server/lib/views/staff/index.js
@@ -75,7 +75,15 @@ var staff = module.exports = {
staff.users.bless
);
-
+ app.put('/staff/users/:username/artist',
+ middleware.ensureAuthenticated,
+ middleware.ensureIsStaff,
+
+ staff.middleware.ensureProfile,
+
+ staff.users.make_artist
+ );
+
if (app.get('env') === 'development') {
app.get('/staff/authorize',
middleware.ensureAuthenticated,
@@ -304,6 +312,12 @@ var staff = module.exports = {
res.json({ state: user.isStaff })
})
},
+ make_artist: function(req, res){
+ res.locals.profile.isArtist = req.body.state == "true"
+ res.locals.profile.save(function(err, user){
+ res.json({ state: user.isArtist })
+ })
+ },
},
// /staff/projects/
diff --git a/server/lib/webhook/webhook.js b/server/lib/webhook/webhook.js
index bd51dac..896d836 100644
--- a/server/lib/webhook/webhook.js
+++ b/server/lib/webhook/webhook.js
@@ -31,6 +31,7 @@ var subscribe = module.exports = {
basic: 1,
pro: 2,
custom: 3,
+ artist: 4,
},
callbacks: {
diff --git a/views/staff/users/show.ejs b/views/staff/users/show.ejs
index e441109..a434b57 100644
--- a/views/staff/users/show.ejs
+++ b/views/staff/users/show.ejs
@@ -35,7 +35,7 @@
plan
</th>
<td>
- [[- profile.plan_type ]]
+ [[- profile.plan_code ]]
</td>
</tr>
<tr>
@@ -101,12 +101,21 @@
[[- profile.isStaff ? "yes" : "no" ]]
</td>
</tr>
+ <tr>
+ <th>
+ is artist?
+ </th>
+ <td id="is-artist">
+ [[- profile.isArtist ? "yes" : "no" ]]
+ </td>
+ </tr>
</table>
<br><br>
<div id="actions">
[[ if (String(user._id) != String(profile._id)) { ]]
<button id="toggle-staff" data-isStaff="[[- !! profile.isStaff ]]">Make Staff</button>
+ <button id="toggle-artist" data-isArtist="[[- !! profile.isArtist ]]">Make Artist</button>
[[ } ]]
</div>