示例#1
0
        public void ManagerRole_UserNameSet_EqualsStark()
        {
            string actual   = new ManagerRole(1, "stark").UserName;
            string expected = "stark";

            Assert.AreEqual(expected, actual);
        }
示例#2
0
        public Claim[] AuthenticateUser(LoginInfo login)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            IManagerRole       roleManager   = new ManagerRole();

            if (string.IsNullOrEmpty(login.TenantCode) || string.IsNullOrEmpty(login.UserName) || string.IsNullOrEmpty(login.Password))
            {
                return(null);
            }

            //Get tenant id with code
            Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);

            if (tenantId == Guid.Empty)
            {
                return(null);
            }

            //Validate UserName
            var userId = crd.GetUserName(tenantId, login.UserName);

            if (userId == Guid.Empty)
            {
                return(null);
            }

            //Validate UserName
            var passwordSaved = crd.GetPassword(tenantId, login.UserName);

            if (passwordSaved == null)
            {
                return(null);
            }

            // check if password is correct
            if (!VerifyPasswordHash(login.Password, Convert.FromBase64String(passwordSaved.PasswordHash), Convert.FromBase64String(passwordSaved.PasswordSalt)))
            {
                return(null);
            }
            //Get user detail

            var userDetails = roleManager.GetUserDetails(tenantId, userId);

            if (userDetails != null)
            {
                var claims = new[] {
                    new Claim("UserId", userDetails.Id.ToString()),
                    new Claim("UserName", userDetails.Name),
                    new Claim("TenantId", tenantId.ToString()),
                    new Claim("IsSuperAdmin", userDetails.IsSuperadmin.ToString()),
                    new Claim("IsSystemAdmin", userDetails.IsSystemAdmin.ToString()),
                    new Claim("Jti", Guid.NewGuid().ToString())
                };

                return(claims);
            }

            return(null);
        }
示例#3
0
        public bool checkAuthorization(dynamic login)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            IManagerRole       roleManager   = new ManagerRole();

            // if (string.IsNullOrEmpty(login.TenantCode) || string.IsNullOrEmpty(login.UserName))
            // {
            //     return false;
            // }

            //Get tenant id with code
            Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);

            if (tenantId == Guid.Empty)
            {
                return(false);
            }
            //Validate UserName
            var userId = crd.GetUserName(tenantId, login.UserName);

            if (userId == Guid.Empty)
            {
                return(false);
            }

            return(true);
        }
示例#4
0
        // public  bool ChangePasswordSetIsNewAfterLogin(LoginInfo login)
        // {
        //     IManagerCredential crd = new ManagerCredential();
        //     ILayoutManager layoutManager = new LayoutManager();
        //     IManagerRole roleManager = new ManagerRole();

        //     if (string.IsNullOrEmpty(login.TenantCode) || string.IsNullOrEmpty(login.UserName))
        //     return false;
        //     //Get tenant id with code
        //     Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);
        //     if (tenantId == Guid.Empty)
        //     return false;
        //     //Validate UserName
        //     var userId = crd.GetUserName(tenantId, login.UserName);
        //     if (userId == Guid.Empty)
        //     return false;
        //     var userDetails = roleManager.GetUserDetails(tenantId, userId);
        //     if (userDetails.Id == Guid.Empty)
        //     return fase;
        //     var credentialData=crd.GetCredential(tenantId,userDetails.Id);
        //   return  crd.SetIsNew(tenantId, new CredentialInfo
        //     {
        //     CredentialId = credentialData.CredentialId,
        //     // ParentId=new Guid("E6C7AA71-3C94-46BF-A392-260A14667F95"),
        //     ParentId = userDetails.Id,
        //     UserName = "",
        //     PasswordHash = "",
        //     PasswordSalt = "",
        //     IsNew = true
        //     });
        // }

        //  private void SendMail(string parampass,Email emailTemplate,JObject data,Guid tenantId, Guid userId)
        //  {
        //      IMetadataManager _iMetadataManager = new VPC.Framework.Business.MetadataManager.Contracts.MetadataManager ();
        //     var emailSubType = _iMetadataManager.GetSubTypes ("email");
        //      IEntityResourceManager _iEntityResourceManager = new VPC.Framework.Business.EntityResourceManager.Contracts.EntityResourceManager ();
        //     dynamic jsonObject = new JObject ();
        //     jsonObject.Body = emailTemplate.Body.Value;
        //     jsonObject.Sender = "";
        //     jsonObject.Recipient = data["ContactInformation_Email"];
        //     jsonObject.Date = HelperUtility.GetCurrentUTCDate();
        //     jsonObject.Subject = emailTemplate.Subject;
        //      var superAdminId = _iEntityResourceManager.SaveResult (tenantId, userId, "email", jsonObject, emailSubType[0].Name.ToString ());

        public User UserInfo(ChangePasswordInfo changepassword)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            IManagerRole       roleManager   = new ManagerRole();
            Guid tenantId    = layoutManager.GetTenantId(InfoType.Tenant, changepassword.TenantCode);
            var  userId      = crd.GetUserName(tenantId, changepassword.UserName);
            var  queryFilter = new List <QueryFilter>();

            queryFilter.Add(new QueryFilter {
                FieldName = "TenantId", Operator = "Equal", Value = tenantId.ToString()
            });
            queryFilter.Add(new QueryFilter {
                FieldName = "InternalId", Operator = "Equal", Value = userId.ToString()
            });
            var queryContext = new QueryContext {
                Fields = "FirstName,LastName", Filters = queryFilter, PageSize = 100, PageIndex = 1, MaxResult = 1
            };
            IEntityResourceManager _iEntityResourceManager = new VPC.Framework.Business.EntityResourceManager.Contracts.EntityResourceManager();
            User      userinfo = null;
            DataTable user     = _iEntityResourceManager.GetResult(tenantId, "User", queryContext);

            if (user.Rows.Count > 0)
            {
                userinfo = EntityMapper <User> .Mapper(user);
            }
            return(userinfo);
        }
示例#5
0
        public ActionResult Index(string searchString, int page = 1, int pageSize = 10)
        {
            var role  = new ManagerRole();
            var model = role.ListAllPaging(searchString, page, pageSize);

            return(View(model));
        }
示例#6
0
        public ActionResult Create(ManagerRole model, string[] roles, string[] navs)
        {
            var jm = new JsonWithUIcallback();

            try
            {
                if (ModelState.IsValid)
                {
                    //其他修改
                    var resultid = _bll.Insert(model);

                    if (resultid > 0)
                    {
                        //获取具体权限内容
                        var rolelist = new List <Model.ManagerRoleValue>();
                        if (roles.Length > 0)
                        {
                            rolelist.AddRange(
                                roles.Select(role => role.Split('|')).Select(arrrole => new ManagerRoleValue
                            {
                                RoleId         = resultid,
                                ControllerName = arrrole[0],
                                ActionName     = arrrole[1]
                            }));
                        }
                        var bllrolevalue = new Dal.ManagerRoleValue();
                        bllrolevalue.InsertBatch(rolelist);

                        var navlist = new List <NavigationRoleValue>();
                        if (navs.Length > 0)
                        {
                            navlist.AddRange(
                                navs.Select(t => new NavigationRoleValue {
                                RoleId = resultid, ActionName = t
                            }));
                        }
                        var bllnavvalue = new Dal.NavigationRoleValue();
                        bllnavvalue.InsertBatch(navlist);
                    }

                    var bl = resultid > 0;
                    jm.statusCode   = bl ? 200 : 300;
                    jm.message      = (bl ? KeyWordsHelper.CreateSuccess : KeyWordsHelper.CreateFailure);
                    jm.closeCurrent = bl;
                    jm.tabid        = bl ? "ManagerRoleList" : "";
                }
                else
                {
                    jm.message = KeyWordsHelper.DataParameterError;
                }
            }
            catch (Exception ex)
            {
                ComToolsController.AddtxtLog(ex, "创建提交", EnumHelper.Nlog.Error.ToString());
                jm.statusCode   = 300;
                jm.message      = ex.ToString();
                jm.closeCurrent = true;
            }
            return(Json(jm));
        }
示例#7
0
        public void ManagerRole_RoleIdSet_EqualsOne()
        {
            int actual   = new ManagerRole(1, "stark").RoleId;
            int expected = 1;

            Assert.AreEqual(expected, actual);
        }
示例#8
0
        public CredentialInfo UserCredentailInfo(LoginInfo login)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            IManagerRole       roleManager   = new ManagerRole();
            Guid           tenantId          = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);
            Guid           userId            = crd.GetUserName(tenantId, login.UserName);
            CredentialInfo credentialData    = crd.GetCredential(tenantId, userId);

            return(credentialData);
        }
示例#9
0
        private void GetTheResult(string str)
        {
            br.TxTNumber = int.Parse(str);
            RoleAbstract manger = new ManagerRole("经理");
            RoleAbstract vp     = new PresidentRole("副经理");
            RoleAbstract pre    = new PresigengtRole("总经理");

            manger.NextRole = vp;
            vp.NextRole     = pre;
            manger.Behaviour(br);
        }
示例#10
0
 public void ManagerRoleTest()
 {
     // get test
     Assert.That(ManagerRole.Moderator.ToString(), Is.EqualTo("moderator"));
     Assert.That(ManagerRole.Editor.ToString(), Is.EqualTo("editor"));
     Assert.That(ManagerRole.Administrator.ToString(), Is.EqualTo("administrator"));
     // parse test
     Assert.That(ManagerRole.FromJson("moderator"), Is.EqualTo(ManagerRole.Moderator));
     Assert.That(ManagerRole.FromJson("editor"), Is.EqualTo(ManagerRole.Editor));
     Assert.That(ManagerRole.FromJson("administrator"), Is.EqualTo(ManagerRole.Administrator));
 }
示例#11
0
 public Task <IActionResult> Edit(ManagerRole model)
 {
     return(Task.Factory.StartNew <IActionResult>(() =>
     {
         if (!ModelState.IsValid)
         {
             return Json(ExcutedResult.FailedResult("数据验证失败"));
         }
         ManagerRoleRepository.Edit(model, false);
         return Json(ExcutedResult.SuccessResult());
     }));
 }
示例#12
0
        public bool ChangePasswordUpdateCredential(ChangePasswordInfo changepassword)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            IManagerRole       roleManager   = new ManagerRole();

            if (string.IsNullOrEmpty(changepassword.TenantCode) || string.IsNullOrEmpty(changepassword.UserName) || string.IsNullOrEmpty(changepassword.OldPassword) || string.IsNullOrEmpty(changepassword.NewPassword))
            {
                return(false);
            }

            //Get tenant id with code
            Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, changepassword.TenantCode);

            if (tenantId == Guid.Empty)
            {
                return(false);
            }

            //Validate UserName
            var userId = crd.GetUserName(tenantId, changepassword.UserName);

            if (userId == Guid.Empty)
            {
                return(false);
            }

            //Validate UserName
            var passwordSaved = crd.GetPassword(tenantId, changepassword.UserName);

            if (passwordSaved == null)
            {
                return(false);
            }
            // check if password is correct
            if (!VerifyPasswordHash(changepassword.OldPassword, Convert.FromBase64String(passwordSaved.PasswordHash), Convert.FromBase64String(passwordSaved.PasswordSalt)))
            {
                return(false);
            }
            byte[] passwordHash, passwordSalt;
            CreatePasswordHash(changepassword.NewPassword, out passwordHash, out passwordSalt);
            CredentialInfo credentialData = crd.GetCredential(tenantId, userId);

            return(crd.Update(tenantId, new CredentialInfo
            {
                CredentialId = credentialData.CredentialId,
                ParentId = userId,
                UserName = changepassword.UserName,
                PasswordHash = Convert.ToBase64String(passwordHash),
                PasswordSalt = Convert.ToBase64String(passwordSalt),
                IsNew = false
            }));
        }
示例#13
0
        private async Task InitRoleAsync()
        {
            if (await _roleRepository.GetCountAsync() == 0)
            {
                var role = await _roleRepository.InsertAsync(new Role
                {
                    Name        = "超级管理员",
                    Description = "权限最大,拥有所有权限"
                });

                var manager = await _managerRepository.InsertAsync(new Manager(Guid.NewGuid(), "admin", "123456", ""));

                await _managerRoleRepository.InsertAsync(ManagerRole.CreateManagerRole(manager, role));
            }
        }
示例#14
0
 public ActionResult Create(Role role)
 {
     if (ModelState.IsValid)
     {
         var  managerrole = new ManagerRole();
         long id          = managerrole.Insert(role);
         if (id > 0)
         {
             return(RedirectToAction("Index", "Role"));
         }
         else
         {
             ModelState.AddModelError("", "Add role access");
         }
     }
     return(View("Index"));
 }
示例#15
0
        public bool EditManager(long groupId, long userId, ManagerRole role, bool?isContact = null, string contactPosition = null, string contactPhone = null, string contactEmail = null)
        {
            VkErrors.ThrowIfNumberIsNegative(() => groupId);
            VkErrors.ThrowIfNumberIsNegative(() => userId);
            var parameters = new GroupsEditManagerParams
            {
                GroupId         = groupId,
                UserId          = userId,
                ContactEmail    = contactEmail,
                ContactPhone    = contactPhone,
                ContactPosition = contactPosition,
                IsContact       = isContact,
                Role            = role
            };

            return(EditManager(parameters));
        }
示例#16
0
        /// <summary>
        /// 给用户赋予新的角色
        /// </summary>
        /// <param name="role"></param>
        /// <param name="menus"></param>
        /// <returns></returns>
        public async Task AddRoleToManager(Guid guid, List <Guid> roleIdList)
        {
            var manager = await _managerRepository.GetAsync(x => x.Id == guid);

            //删除所有的原有权限
            await _managerRoleRepository.DeleteAsync(x => x.ManagerId == manager.Id);

            //赋予权限
            foreach (var roleId in roleIdList)
            {
                var role = await _roleRepository.FindAsync(x => x.Id == roleId);

                if (role == null)
                {
                    continue;
                }
                var roleMenu = ManagerRole.CreateManagerRole(manager, role);
                await _managerRoleRepository.InsertAsync(roleMenu);
            }
        }
示例#17
0
        public Claim[] RevokeAuthorization(Guid tenantId, Guid userId)
        {
            IManagerRole roleManager = new ManagerRole();

            var userDetails = roleManager.GetUserDetails(tenantId, userId);

            if (userDetails != null)
            {
                var claims = new[] {
                    new Claim("UserId", userDetails.Id.ToString()),
                    new Claim("UserName", userDetails.Name),
                    new Claim("TenantId", tenantId.ToString()),
                    new Claim("IsSuperAdmin", userDetails.IsSuperadmin.ToString()),
                    new Claim("IsSystemAdmin", userDetails.IsSystemAdmin.ToString()),
                    new Claim("Jti", Guid.NewGuid().ToString())
                };

                return(claims);
            }

            return(null);
        }
示例#18
0
 public MenuManager(ManagerRole userRole)
     : this((int) userRole)
 {
 }
示例#19
0
        public ActionResult Edit(ManagerRole model, string[] roles, string[] navs)
        {
            var jm = new JsonWithUIcallback();

            try
            {
                if (!ModelState.IsValid)
                {
                    jm.message = KeyWordsHelper.DataParameterError;
                    return(Json(jm));
                }
                var oldModel = _bll.QueryToEnetity(p => p.Id == model.Id);
                if (oldModel == null)
                {
                    jm.statusCode   = 300;
                    jm.message      = "不存在此信息";
                    jm.closeCurrent = true;
                    return(Json(jm));
                }
                //事物处理过程开始

                oldModel.DepartmentID = model.DepartmentID;
                oldModel.IsSystem     = model.IsSystem;
                oldModel.RoleName     = model.RoleName;
                oldModel.SortId       = model.SortId;

                //获取具体权限内容
                var rolelist = new List <Model.ManagerRoleValue>();
                if (roles.Length > 0)
                {
                    rolelist.AddRange(roles.Select(role => role.Split('|')).Select(arrrole => new ManagerRoleValue
                    {
                        RoleId         = oldModel.Id,
                        ControllerName = arrrole[0],
                        ActionName     = arrrole[1]
                    }));
                }
                //获取具体栏目显示
                var navlist = new List <NavigationRoleValue>();
                if (navs != null && navs.Length > 0)
                {
                    navlist.AddRange(navs.Select(t => new NavigationRoleValue {
                        RoleId = oldModel.Id, ActionName = t
                    }));
                }
                var resultbl = _bll.Update(oldModel) > 0;
                if (resultbl)
                {
                    var bllrolevalue = new Dal.ManagerRoleValue();
                    bllrolevalue.Delete(p => p.RoleId == oldModel.Id);
                    bllrolevalue.InsertBatch(rolelist);
                    var bllnavvalue = new Dal.NavigationRoleValue();
                    bllnavvalue.Delete(p => p.RoleId == oldModel.Id);
                    bllnavvalue.InsertBatch(navlist);
                }
                //事物处理过程结束
                var bl = resultbl;
                jm.statusCode   = bl ? 200 : 300;
                jm.message      = bl ? KeyWordsHelper.EditSuccess : KeyWordsHelper.EditFailure;
                jm.closeCurrent = bl;
                jm.tabid        = bl ? "ManagerRoleList" : "";
            }
            catch (Exception ex)
            {
                ComToolsController.AddtxtLog(ex, "创建提交", EnumHelper.Nlog.Error.ToString());
                jm.statusCode   = 300;
                jm.message      = ex.ToString();
                jm.closeCurrent = true;
            }
            return(Json(jm));
        }
示例#20
0
        public bool ForgetPasswordUpdateCredential(LoginInfo login, PasswordPolicy passwordpolicy)
        {
            IManagerCredential crd           = new ManagerCredential();
            ILayoutManager     layoutManager = new LayoutManager();
            IManagerRole       roleManager   = new ManagerRole();

            if (string.IsNullOrEmpty(login.TenantCode) || string.IsNullOrEmpty(login.UserName))
            {
                return(false);
            }
            //Get tenant id with code
            Guid tenantId = layoutManager.GetTenantId(InfoType.Tenant, login.TenantCode);

            if (tenantId == Guid.Empty)
            {
                return(false);
            }
            //Validate UserName
            var userId = crd.GetUserName(tenantId, login.UserName);

            if (userId == Guid.Empty)
            {
                return(false);
            }
            byte[] passwordHash, passwordSalt;
            Random random = new Random();
            int    pass   = random.Next(1000000);

            //pass = 111;
            CreatePasswordHash(pass.ToString(), out passwordHash, out passwordSalt);
            var userDetails = roleManager.GetUserDetails(tenantId, userId);

            if (userDetails.Id == Guid.Empty)
            {
                return(false);
            }
            var credentialData = crd.GetCredential(tenantId, userDetails.Id);


            IMetadataManager iMetadataManager = new MetadataManager.Contracts.MetadataManager();
            var queryFilter = new List <QueryFilter>();

            queryFilter.Add(new QueryFilter {
                FieldName = "TenantId", Operator = "Equal", Value = tenantId.ToString()
            });
            queryFilter.Add(new QueryFilter {
                FieldName = "InternalId", Operator = "Equal", Value = userDetails.Id.ToString()
            });
            var queryContext = new QueryContext {
                Fields = "FirstName,LastName,MiddleName,ContactInformation.WorkEmail1", Filters = queryFilter, PageSize = 100, PageIndex = 1
            };
            //  var queryContext = new QueryContext { Fields = "FirstName,LastName", Filters = queryFilter, PageSize = 100, PageIndex = 1 };
            IEntityResourceManager _iEntityResourceManager = new VPC.Framework.Business.EntityResourceManager.Contracts.EntityResourceManager();
            var dataTableUser = _iEntityResourceManager.GetResultById(tenantId, "user", userDetails.Id, queryContext);
            var userEntity    = EntityMapper <VPC.Entities.EntityCore.Metadata.User> .Mapper(dataTableUser);

            var            jObject            = DataUtility.ConvertToJObjectList(dataTableUser);
            CredentialInfo usercredentialinfo = UserCredentailInfo(login);

            jObject[0].Add(new JProperty("UserCredential.Username", usercredentialinfo.UserName.ToString()));
            jObject[0].Add(new JProperty("UserCredential.Password", pass.ToString()));
            jObject[0].Add(new JProperty("TenantCode", login.TenantCode.ToString()));

            var emailTemplate = _iEntityResourceManager.GetWellKnownTemplate(tenantId, "emailtemplate", "user", (int)ContextTypeEnum.Forgotpassword, jObject[0]);

            if (emailTemplate != null && emailTemplate.Body != null)
            {
                var isnew = false;
                if (passwordpolicy != null)
                {
                    isnew = passwordpolicy.ResetOnFirstLogin.Value;
                }

                crd.Update(tenantId, new CredentialInfo
                {
                    CredentialId = credentialData.CredentialId,
                    ParentId     = userDetails.Id,
                    PasswordHash = Convert.ToBase64String(passwordHash),
                    PasswordSalt = Convert.ToBase64String(passwordSalt),
                    IsNew        = isnew
                });
                var returnVal = DataUtility.SaveEmail(tenantId, userDetails.Id, emailTemplate, usercredentialinfo.UserName.ToString(), "ForgetPassword", InfoType.User);
                // SendMail(pass.ToString(),emailTemplate,jdata[0],tenantId,userDetails.Id);
            }
            else
            {
                return(false);
            }

            return(true);
        }
示例#21
0
 public AuthAttribute(string users = "", ManagerRole role = ManagerRole.None)
 {
     Users = users;
     Role = role;
     Type = UserType.Manager;
 }
示例#22
0
文件: User.cs 项目: shoy160/tjzx
 public bool HaseRole(ManagerRole role)
 {
     return (Role & (int) role) > 0;
 }
示例#23
0
        public void ManagerRole_CanViewUsers_ReturnsTrue()
        {
            var manager = new ManagerRole(1, "stark");

            Assert.IsFalse(manager.CanViewUsers);
        }
示例#24
0
 public bool EditManager(long groupId, long userId, ManagerRole role)
 {
     // Проверка на неотрицательные значения в след. методе
     return(EditManager(groupId, userId, role, null));
 }
示例#25
0
        public void SetViewBag(long?selectedId = null)
        {
            var dao = new ManagerRole();

            ViewBag.IdRole = new SelectList(dao.ListAll(), "ID", "Name", selectedId);
        }
 protected string ReturnToSupplementsIndex()
 {
     return($"/{ManagerRole.ToLower()}/{Supplements.ToLower()}");
 }