gpt4 book ai didi

node.js - mean.io 什么是设置管理员用户 + 管理模块的最佳方式

转载 作者:搜寻专家 更新时间:2023-10-31 23:38:43 27 4
gpt4 key购买 nike

我一直使用http://www.mean.io/我很难设置管理员用户 + 管理模块+(如果需要)管理 acl

我目前在做什么:

将此规则添加到 models/user.js

role: {
type: String,
required: true,
default: 'authoring'
}

为注册设置一个 init.js用户管理员喜欢:

var userData = { "name" : "User Admin", "email" : "info@mydomain.com", "username" : "admin","role" : "admin","password":"admin"};
var user = new User(userData);
user.provider = 'local';
user.save(function(err) {
if (err) {
console.log(err);
process.exit();
return;
}
console.log(user);
process.exit();
});

设置三个文件夹

  • 管理员
  • 默认
  • 登录

我不信任管理敏感数据仅客户端

设置acl

一个简单的 acl,用于服务器和客户喜欢:

//SERVER
'use strict';

/**
* Generic require login routing middleware
*/
exports.requiresLogin = function(req, res, next) {
if (!req.isAuthenticated()) {
return res.redirect('/signin');
}
next();
};

/**
* Generic require login routing middleware
*/
exports.apiRequiresLogin = function(req, res,next) {
if (!req.isAuthenticated()) {
return res.jsonp(401,{ error:'User is not authorized'});
}
next();
};

// Profile authorization helpers
exports.isOwnerProfile = function(req, res, next) {
if (req.user.role !== 'admin') {
if (req.profile.id !== req.user.id) {
return res.send(401, 'User is not authorized');
}
}
next();
};

// User admin authorization helpers
exports.isAdmin = function(req, res, next) {
if (req.user.role !== 'admin') {
return res.send(401, 'User is not authorized');
}
next();
};

// Article authorization helpers
exports.requireSameAuthor = function(req, res, next) {
if (req.post.user.id !== req.user.id) {
return res.send(401, 'User is not authorized');
}
next();
};
//CLIENT
.factory('Global', function($cookieStore) {
var user = $cookieStore.get('USER');
var _this = this;
_this._data = {
user: user,
_authenticated: !!user,
_isAdmin: (user.role==='admin'),
isAuthenticated: function() {
return this._authenticated;
},
isAdmin: function() {
return this._isAdmin;
},
isActionDisabled:function(post){
if(this.isAdmin()){
return false;
}
return (this.user.id === post.author_id);
}
};
return _this._data;
})

设置管理员用户 + 管理模块 + acl 的最佳方式是什么?

我在新实现中看到有包它们对此有用吗?

更新

抱歉,我没有看到文档 http://www.mean.io/#!/docs

最佳答案

是的,平均包就是您要使用的包。安装意味着:

npm install -g meanio

安装 mean-admin 包:

mean install mean-admin

为用户创建管理员 Angular 色:

mean user <your_signin_email> -a admin

关于node.js - mean.io 什么是设置管理员用户 + 管理模块的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23134565/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com