private void LoadData() { btnClose.OnClientClick = ActiveWindow.GetHideReference(); int id = GetQueryIntValue("id"); if (id > 0) { PermissionRole current = DB.PermissionRoles.Find(id); if (current == null) { // 参数错误,首先弹出Alert对话框然后关闭弹出窗口 Alert.Show("参数错误!", String.Empty, ActiveWindow.GetHideReference()); return; } tbxName.Text = current.Name; tbxRemark.Text = current.Remark; tbxIsActive.Checked = current.IsActive; tbxDisplayOrder.Text = current.DisplayOrder.ToString(); if (current.IsClientAdminRole) { tbxIsActive.Enabled = false; tbxIsActive.Checked = true; } } }
public ActionResult PermissionRoleEditProvide() { string currentCheckedId = RQuery["currentCheckedId"]; PermissionRole permissionRole = null; if (string.IsNullOrWhiteSpace(currentCheckedId)) { permissionRole = new PermissionRole(); } else { permissionRole = _permissionRoleService.GetById(new Guid(currentCheckedId)); } UpdateModel <PermissionRole>(permissionRole); if (string.IsNullOrWhiteSpace(currentCheckedId)) { _permissionRoleService.Insert(permissionRole); base.AddLog(string.Format("添加角色[{0}]成功", permissionRole.Name), AdminLoggerModuleEnum.Role); return(JsonMessage(true, "添加角色成功")); } else { _permissionRoleService.Update(permissionRole); base.AddLog(string.Format("编辑角色[{0}]成功", permissionRole.Name), AdminLoggerModuleEnum.Role); return(JsonMessage(true, "编辑角色成功")); } }
public ActionResult DeleteConfirmed(int id) { ViewBag.Current = "Roles"; PermissionRole permissionRole = db.PermissionRoles.Include(a => a.Role).Include(a => a.CreatedBy).FirstOrDefault(a => a.Id == id); db.PermissionRoles.Remove(permissionRole); db.SaveChanges(); string NotificationTime = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss"); string Role_ID = Session["Role_Id"].ToString(); string RoleName = db.Roles.Find(Role_ID).Name; string UserId = User.Identity.GetUserId(); string PermissionName = db.Permissions.Find(permissionRole.PermissionId).Name; Notification notification = null; List <ApplicationUser> Users = db.Users.Where(a => !a.Id.Equals(UserId) && a.RoleName.Equals(RoleName)).ToList(); foreach (ApplicationUser user in Users) { notification = new Notification() { CreatedAt = NotificationTime, Active = false, UserId = user.Id, Message = "تم حذف صلاحية : " + PermissionName + " من الدور :" + RoleName, NotificationOwnerId = UserId }; db.Notifications.Add(notification); } db.SaveChanges(); return(RedirectToAction("Index", new { @id = Session["Role_Id"].ToString(), @msg = "DeleteSuccess" })); }
/// <summary> /// Delete provided team /// </summary> /// <param name="entity">Team</param> /// <returns>Returns list of validations</returns> public async Task <IList <ValidationResult> > DeletePermissionRole(PermissionRole entity, string userId) { //Validazione argomenti if (entity == null) { throw new ArgumentNullException(nameof(entity)); } //Se l'oggetto � esistente, eccezione if (string.IsNullOrEmpty(entity.Id)) { throw new InvalidProgramException("Provided role doesn't have valid Id"); } var validations = new List <ValidationResult>(); //Check permissions if (!await ValidateUserPermissions(userId, Permissions.ManagePermissions)) { validations.AddMessage($"User {userId} has no permissions on {nameof(DeletePermissionRole)} with Id: {entity.Id}"); return(validations); } //Esecuzione in transazione using var t = DataSession.BeginTransaction(); //Eliminazione _permissionRoleRepository.Delete(entity); t.Commit(); return(validations); }
protected void Grid2_RowCommand(object sender, GridCommandEventArgs e) { int roleID = GetSelectedDataKeyID(Grid1); object[] values = Grid2.DataKeys[e.RowIndex]; int userID = Convert.ToInt32(values[0]); if (e.CommandName == "Delete") { // 在操作之前进行权限检查 PermissionRole role = DB.PermissionRoles.Where(r => r.ID == roleID) .FirstOrDefault(); UserPermissionRole tobeRemoved = DB.UserPermissionRoles.Where(u => u.UserID == userID && u.PermissionRoleID == roleID).FirstOrDefault(); if (role != null && tobeRemoved != null) { DB.UserPermissionRoles.Remove(tobeRemoved); DB.SaveChanges(); } BindGrid2(); } }
protected void btnDeleteSelected_Click(object sender, EventArgs e) { // 在操作之前进行权限检查 // 从每个选中的行中获取ID(在Grid1中定义的DataKeyNames) int roleID = GetSelectedDataKeyID(Grid1); List <int> userIDs = GetSelectedDataKeyIDs(Grid2); PermissionRole role = DB.PermissionRoles.Where(r => r.ID == roleID) .FirstOrDefault(); //role.Users.Where(u => userIDs.Contains(u.ID)).ToList().ForEach(u => role.Users.Remove(u)); foreach (int userID in userIDs) { UserPermissionRole serPermissionRole = DB.UserPermissionRoles.Where(u => u.UserID == userID && u.PermissionRoleID == roleID).FirstOrDefault(); if (serPermissionRole != null) { DB.UserPermissionRoles.Remove(serPermissionRole); } } DB.SaveChanges(); // 清空当前选中的项 Grid2.SelectedRowIndexArray = null; // 重新绑定表格 BindGrid2(); }
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { int roleID = GetSelectedDataKeyID(Grid1); if (e.CommandName == "Delete") { // 在操作之前进行权限检查 if (DB.PermissionRoles.Find(roleID).ForbidDelete) { Alert.ShowInTop("系统必须的角色, 不能删除"); return; } int userCountUnderThisRole = DB.Users.Where(u => u.UserPermissionRoles.Any(r => r.ID == roleID)).Count(); if (userCountUnderThisRole > 0) { Alert.ShowInTop("删除失败!需要先清空属于此角色的用户!"); return; } // 执行数据库操作 //DB.PermissionRoles.Where(item => item.ID == roleID).Delete<PermissionRole>(); PermissionRole permissionRole = DB.PermissionRoles.Where(item => item.ID == roleID).FirstOrDefault(); GenericRepository <PermissionRole> repository = UnitOfWork.Repository <PermissionRole>(); if (!repository.Delete(permissionRole, out msg)) { Alert.ShowInTop("删除失败!"); } BindGrid(); } }
public async Task <IActionResult> UpdateUserRole(Guid id, Guid roleId) { PermissionRole role = await _context.PermissionRoles.FirstOrDefaultAsync(r => r.Id == roleId); if (role == null) { return(BadRequest("Role doesn't exist")); } Account account = await _context.Accounts.FirstOrDefaultAsync(a => a.Id == id); if (account == null) { return(BadRequest("User not found")); } account.RoleId = role.Id; if (await _context.SaveChangesAsync() > 0) { return(Ok()); } else { return(BadRequest("Could not update role")); } }
public void CreateMasterRole() { RoleManager <ApplicationRoles> roleManager = new RoleManager <ApplicationRoles>(new RoleStore <ApplicationRoles>(db)); ApplicationRoles role = new ApplicationRoles(); if (!roleManager.RoleExists("Master")) { role.Name = "Master"; roleManager.Create(role); PermissionRole prole; //Add All Permission to Super Admin IEnumerable <Permission> Permissions = db.Permissions.Where(a => a.TypeMaster == true); foreach (Permission myPermission in Permissions) { prole = new PermissionRole() { RoleId = role.Id, PermissionId = myPermission.Id, Is_Active = true }; db.PermissionRoles.Add(prole); } } db.SaveChanges(); }
public ActionResult PermissionRoleList() { if (!base.HasPermission("role", PermissionOperate.manager)) { return(base.ShowNotPermissionTip("")); } ViewBag.Permissions = string.Empty; ViewBag.Name = string.Empty; ViewBag.CurrentCheckedId = string.Empty; IList <PermissionModule> list1 = _permissionModuleService.GetALL("Sort", true); IList <PermissionModule> list2 = new List <PermissionModule>(); BuildPermissionModule(list1, Guid.Empty, list2); //所有权限 IList <PermissionModuleCode> listPermission = _permissionModuleCodeService.GetALL("CreateDate", true); ViewBag.ListPermission = listPermission; //当前角色权限 string permissionRoleId = RQuery["permissionRoleId"]; if (!string.IsNullOrWhiteSpace(permissionRoleId)) { PermissionRole permissionRole = _permissionRoleService.GetById(new Guid(permissionRoleId)); ViewBag.Permissions = permissionRole.Permissions; ViewBag.Name = permissionRole.Name; ViewBag.CurrentCheckedId = permissionRole.Id; } return(View(list2)); }
private List <PermissionRole> GetSelectedRolePermisions(string roleId) { List <PermissionRole> permissionRoles = new List <PermissionRole>(); var existingAccessCodes = GetExistingAccessCodes(); var checkedItems = cblMasterData.CheckedItems.OfType <object>().ToList(); checkedItems.AddRange(cblTransaksi.CheckedItems.OfType <object>().ToList()); checkedItems.AddRange(cblReporting.CheckedItems.OfType <object>().ToList()); foreach (var checkedItem in checkedItems) { var permissionCode = existingAccessCodes.Where(a => checkedItem.ToString().Contains(a.ToString())).FirstOrDefault().ToString(); var permission = new UnitOfWork <Permission>(dbContext).Repository.GetAll() .Where(e => e.PermissionCode == permissionCode).FirstOrDefault(); var permRole = new PermissionRole { RoleId = roleId.ToUpper(), PermisionId = permission.Id, // Audit Fields CreatedBy = Properties.Settings.Default.CurrentUserId, CreatedAt = DateTime.Now, ModifiedBy = Properties.Settings.Default.CurrentUserId, ModifiedAt = DateTime.Now }; permissionRoles.Add(permRole); } return(permissionRoles); }
public void Test_ObjectDelete() { SyncTestHelpers.RequiresRos(); AsyncContext.Run(async() => { var userA = await SyncTestHelpers.GetUserAsync(); var userB = await SyncTestHelpers.GetUserAsync(); var realmUri = await CreateRealm(r => { var reader = PermissionRole.Get(r, "reader"); reader.Users.Add(userA); reader.Users.Add(userB); var writer = PermissionRole.Get(r, "writer"); writer.Users.Add(userA); var obj1 = r.Add(new ObjectWithPermissions { Id = 1, StringValue = "Value 1" }); CreatePermissions(obj1.Permissions); }, addObjects: false); using (var realmA = GetRealm(userA, realmUri)) using (var realmB = GetRealm(userB, realmUri)) { var subscriptionB = await SubscribeToObjectsAsync(realmB); var objB = subscriptionB.Results.Single(); realmB.Write(() => { realmB.Remove(objB); }); Assert.That(subscriptionB.Results.Count(), Is.Zero); await WaitForSyncAsync(realmB); Assert.That(subscriptionB.Results.Count(), Is.EqualTo(1)); objB = subscriptionB.Results.Single(); var subscriptionA = await SubscribeToObjectsAsync(realmA); var objA = subscriptionA.Results.Single(); realmA.Write(() => { realmA.Remove(objA); }); await WaitForSyncAsync(realmA); await WaitForSyncAsync(realmB); Assert.That(subscriptionA.Results.Count(), Is.Zero); Assert.That(subscriptionB.Results.Count(), Is.Zero); Assert.That(objA.IsValid, Is.False); Assert.That(objB.IsValid, Is.False); } }); }
public void Test_ClassUpdate() { SyncTestHelpers.RequiresRos(); AsyncContext.Run(async() => { var userA = await SyncTestHelpers.GetUserAsync(); var userB = await SyncTestHelpers.GetUserAsync(); var realmUri = await CreateRealm(r => { CreatePermissions(ClassPermission.Get <ObjectWithPermissions>(r).Permissions); var reader = PermissionRole.Get(r, "reader"); reader.Users.Add(userA); reader.Users.Add(userB); var writer = PermissionRole.Get(r, "writer"); writer.Users.Add(userA); }); using (var realm = GetRealm(userA, realmUri)) { var subscription = await SubscribeToObjectsAsync(realm); AssertRealmPrivileges(realm, RealmPrivileges.Read | RealmPrivileges.Update | RealmPrivileges.ModifySchema | RealmPrivileges.SetPermissions); AssertClassPrivileges(realm, ClassPrivileges.Read | ClassPrivileges.Subscribe | ClassPrivileges.Update | ClassPrivileges.Create); AssertObjectPrivileges(realm, ObjectPrivileges.Read | ObjectPrivileges.Update | ObjectPrivileges.Delete | ObjectPrivileges.SetPermissions); var obj = realm.Find <ObjectWithPermissions>(1); realm.Write(() => { obj.StringValue = "New value"; }); await WaitForSyncAsync(realm); Assert.That(obj.StringValue, Is.EqualTo("New value")); } using (var realm = GetRealm(userB, realmUri)) { var subscription = await SubscribeToObjectsAsync(realm); AssertRealmPrivileges(realm, RealmPrivileges.Read | RealmPrivileges.Update | RealmPrivileges.ModifySchema | RealmPrivileges.SetPermissions); AssertClassPrivileges(realm, ClassPrivileges.Read | ClassPrivileges.Subscribe); AssertObjectPrivileges(realm, ObjectPrivileges.Read); var obj = realm.Find <ObjectWithPermissions>(1); realm.Write(() => { obj.StringValue = "New value 2"; }); Assert.That(obj.StringValue, Is.EqualTo("New value 2")); await WaitForSyncAsync(realm); // Change is reverted Assert.That(obj.StringValue, Is.EqualTo("New value")); } }); }
public void Test_ObjectUpdate() { SyncTestHelpers.RequiresRos(); AsyncContext.Run(async() => { var userA = await SyncTestHelpers.GetUserAsync(); var userB = await SyncTestHelpers.GetUserAsync(); var realmUri = await CreateRealm(r => { var reader = PermissionRole.Get(r, "reader"); reader.Users.Add(userA); reader.Users.Add(userB); var writer = PermissionRole.Get(r, "writer"); writer.Users.Add(userA); var obj1 = r.Add(new ObjectWithPermissions { Id = 1, StringValue = "Value 1" }); CreatePermissions(obj1.Permissions); }, addObjects: false); using (var realm = GetRealm(userA, realmUri)) { var subscription = await SubscribeToObjectsAsync(realm); var obj1 = subscription.Results.Single(); realm.Write(() => { obj1.StringValue = "New value"; }); await WaitForSyncAsync(realm); Assert.That(obj1.StringValue, Is.EqualTo("New value")); } using (var realm = GetRealm(userB, realmUri)) { var subscription = await SubscribeToObjectsAsync(realm); var obj1 = subscription.Results.Single(); realm.Write(() => { obj1.StringValue = "New value #2"; }); Assert.That(obj1.StringValue, Is.EqualTo("New value #2")); await WaitForSyncAsync(realm); Assert.That(obj1.StringValue, Is.EqualTo("New value")); } }); }
public void Test_RealmUpdate() { SyncTestHelpers.RequiresRos(); AsyncContext.Run(async() => { var userA = await SyncTestHelpers.GetUserAsync(); var userB = await SyncTestHelpers.GetUserAsync(); var realmUri = await CreateRealm(r => { CreatePermissions(RealmPermission.Get(r).Permissions); var reader = PermissionRole.Get(r, "reader"); reader.Users.Add(userA); reader.Users.Add(userB); var writer = PermissionRole.Get(r, "writer"); writer.Users.Add(userA); }); using (var realm = GetRealm(userA, realmUri)) { var subscription = await SubscribeToObjectsAsync(realm); AssertRealmPrivileges(realm, RealmPrivileges.Read | RealmPrivileges.Update); AssertClassPrivileges(realm, ClassPrivileges.Read | ClassPrivileges.Subscribe | ClassPrivileges.Create | ClassPrivileges.SetPermissions | ClassPrivileges.Update); AssertObjectPrivileges(realm, ObjectPrivileges.Read | ObjectPrivileges.Delete | ObjectPrivileges.SetPermissions | ObjectPrivileges.Update); Assert.That(subscription.Results.Count(), Is.EqualTo(3)); AddObjectsToRealm(realm, new[] { 4, 5, 6 }); Assert.That(subscription.Results.Count(), Is.EqualTo(6)); await WaitForSyncAsync(realm); Assert.That(subscription.Results.Count(), Is.EqualTo(6)); } using (var realm = GetRealm(userB, realmUri)) { var subscription = await SubscribeToObjectsAsync(realm); AssertRealmPrivileges(realm, RealmPrivileges.Read); AssertClassPrivileges(realm, ClassPrivileges.Read | ClassPrivileges.Subscribe); AssertObjectPrivileges(realm, ObjectPrivileges.Read); Assert.That(subscription.Results.Count(), Is.EqualTo(6)); AddObjectsToRealm(realm, new[] { 7, 8, 9 }); Assert.That(subscription.Results.Count(), Is.EqualTo(9)); await WaitForSyncAsync(realm); Assert.That(subscription.Results.Count(), Is.EqualTo(6)); } }); }
public int PermissionRoleAdd(PermissionRole permissionRole) { using (OracleConnection conn = DapperHelper.GetConnString()) { conn.Open(); string sql = string.Format("insert into PermissionRole values(@PermissionRoleID,@RolePID,@FunctionPID,@CreateData,@UpdateDate,getdate())"); int i = conn.Execute(sql, permissionRole); return(i); } }
public int PermissionRoleUpdate(PermissionRole permissionRole) { using (OracleConnection conn = DapperHelper.GetConnString()) { conn.Open(); string sql = "Update PermissionRole set PermissionRoleID=@PermissionRoleID,RolePID=@RolePID,FunctionPID=@FunctionPID,CreateData=@CreateData,UpdateDate=@UpdateDate"; int i = conn.Execute(sql, permissionRole); return(i); } }
public void InsertRole() { var role = new PermissionRole { Name = "普通用户", Description = "测试用只能看到自己的数据" }; var result = this.permissionSvc.AddOrUpdateRole(role); Assert.IsTrue(result > 0); }
private PermissionRole FillPermissionRecord(PermissionRoleDS.PermissionRoleRow row) { PermissionRole theNewRecord = new PermissionRole( row.permissionid, row.IsdescriptionNull() ? "" : row.description, row.IsroleNull() ? "" : row.role, row.IsroleNull() ? false : true); return(theNewRecord); }
public ActionResult Create(string RoleId, List <int> Sel) { ViewBag.Current = "Roles"; if (Sel == null) { return(RedirectToAction("Index", new { @id = Session["Role_Id"].ToString(), @msg = "CreateError" })); } string RoleName = db.Roles.Find(RoleId).Name; foreach (int P_Id in Sel) { PermissionRole PR = new PermissionRole() { RoleId = RoleId, PermissionId = P_Id, CreatedAt = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss"), CreatedById = this.User.Identity.GetUserId(), Is_Active = true }; string NotificationTime = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss"); string PermissionName = db.Permissions.Find(P_Id).Name; db.PermissionRoles.Add(PR); db.SaveChanges(); string UserId = User.Identity.GetUserId(); Notification notification = null; List <ApplicationUser> Users = db.Users.Where(a => !a.Id.Equals(UserId) && a.RoleName.Equals(RoleName)).ToList(); foreach (ApplicationUser user in Users) { notification = new Notification() { CreatedAt = NotificationTime, Active = false, UserId = user.Id, Message = "تم إضافة صلاحية جديدة : " + PermissionName + " للدور :" + RoleName, NotificationOwnerId = UserId }; db.Notifications.Add(notification); } db.SaveChanges(); } // return View(); return(RedirectToAction("Index", new { @id = Session["Role_Id"].ToString(), @msg = "CreateSuccess" })); }
/// <summary> /// Operation without transaction /// </summary> /// <param name="newPermissions"></param> /// <returns></returns> public IList <ValidationResult> SavePermissionRole(PermissionRole entity) { var validations = _permissionRoleRepository.Validate(entity); if (validations.Count > 0) { return(validations); } _permissionRoleRepository.Save(entity); return(validations); }
//protected readonly IUnitOfWork unitOfWork; //protected readonly IPermissionRoleRepository permissionRoleRepository; //public PermissionSvc(IUnitOfWork unitofwork, IPermissionRoleRepository permissionRoleRepository) //{ // this.unitOfWork = unitofwork; // this.permissionRoleRepository = permissionRoleRepository; //} public int AddOrUpdateRole(PermissionRole role) { if (role.Id > 0) { this.permissionRoleRepository.Update(role); } else { this.permissionRoleRepository.Add(role); } this.unitOfWork.Commit(); return(role.Id); }
public PartialViewResult SetNewPermission(int?permissionid, int?roleid) { PermissionRole p = new PermissionRole(); p.RoleID = roleid; p.PermissionID = permissionid; p.Created = DateTime.Now; db.PermissionRoles.Add(p); db.SaveChanges(); return(PartialView("_updaterole", DataUpdateRole(roleid))); }
public static PermissionRoleDto Map(PermissionRole entity) { var dto = new PermissionRoleDto(); dto.Id = entity.Id; dto.Permission = entity.Permission != null?PermissionDtoMapper.Map(entity.Permission) : null; dto.CreatedOn = entity.CreatedOn; dto.LastModifiedOn = entity.LastModifiedOn; dto.Deleted = entity.Deleted; //todo: don't do LastModifiedBy in here, have a 'MapWithLastModifiedBy' method - otherwise infinately recursive call. //todo: don't do CreatedBy in here, have a 'MapWithCreatedBy' method - otherwise infinately recursive call. return(dto); }
public ActionResult confirm(int id) { ViewBag.Current = "Roles"; string ActiveState = ""; PermissionRole PermissionRole = db.PermissionRoles.Find(id); if (PermissionRole.Is_Active == true) { PermissionRole.Is_Active = false; ActiveState = "إلغاء التفعيل"; } else { PermissionRole.Is_Active = true; ActiveState = " إعادةالتفعيل"; } PermissionRole.Updatedat = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss"); PermissionRole.UpdatedById = this.User.Identity.GetUserId(); db.Entry(PermissionRole).State = EntityState.Modified; string Role_ID = Session["Role_Id"].ToString(); string RoleName = db.Roles.Find(Role_ID).Name; string NotificationTime = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss"); string PermissionName = db.Permissions.Find(PermissionRole.PermissionId).Name; db.SaveChanges(); string UserId = User.Identity.GetUserId(); Notification notification = null; List <ApplicationUser> Users = db.Users.Where(a => !a.Id.Equals(UserId) && a.RoleName.Equals(RoleName)).ToList(); foreach (ApplicationUser user in Users) { notification = new Notification() { CreatedAt = NotificationTime, Active = false, UserId = user.Id, Message = "تمت عملية : " + ActiveState + " للصلاحية :" + PermissionName + " للدور :" + RoleName, NotificationOwnerId = UserId }; db.Notifications.Add(notification); } db.SaveChanges(); return(RedirectToAction("Index", new { @id = Session["Role_Id"].ToString(), @msg = "ActiveSuccess" })); }
public async Task <IActionResult> PostPermissionRole([FromBody] PermissionRole permissionRole) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var permissionRoleToUpdate = _context.PermissionRole.Where(pR => pR.RoleID == permissionRole.RoleID && pR.PermissionID == permissionRole.PermissionID).First(); permissionRoleToUpdate.IsEnabled = permissionRole.IsEnabled; await _context.SaveChangesAsync(); return(CreatedAtAction("GetPermissionRole", new { id = permissionRole.ID }, permissionRole)); }
public void Create(PermissionRole PermissionRole) { try { using (Context = new ProjectLineContext()) { Context.PermissionsRoles.Add(PermissionRole); Context.SaveChanges(); } } catch (Exception ex) { Console.Write(ex); } }
public void Test_RealmRead() { SyncTestHelpers.RequiresRos(); AsyncContext.Run(async() => { var userA = await SyncTestHelpers.GetUserAsync(); var userB = await SyncTestHelpers.GetUserAsync(); var realmUri = await CreateRealm(r => { CreatePermissions(RealmPermission.Get(r).Permissions); var role = PermissionRole.Get(r, "reader"); role.Users.Add(userA); }); using (var realm = GetRealm(userA, realmUri)) { var query = realm.All <ObjectWithPermissions>(); var subscription = query.Subscribe(); await subscription.WaitForSynchronizationAsync().Timeout(2000); AssertRealmPrivileges(realm, RealmPrivileges.Read); AssertClassPrivileges(realm, ClassPrivileges.Read | ClassPrivileges.Subscribe); AssertObjectPrivileges(realm, ObjectPrivileges.Read); Assert.That(subscription.Results.Count(), Is.EqualTo(3)); AddObjectsToRealm(realm, new[] { 4, 5, 6 }); Assert.That(subscription.Results.Count(), Is.EqualTo(6)); await WaitForSyncAsync(realm); Assert.That(subscription.Results.Count(), Is.EqualTo(3)); } using (var realm = GetRealm(userB, realmUri)) { var query = realm.All <ObjectWithPermissions>(); var subscription = query.Subscribe(); await subscription.WaitForSynchronizationAsync().Timeout(2000); AssertRealmPrivileges(realm, 0); AssertClassPrivileges(realm, 0); Assert.That(subscription.Results.Count(), Is.Zero); } }); }
public ActionResult Details(int?id) { ViewBag.Current = "Roles"; if (id == null) { return(RedirectToAction("BadRequestError", "ErrorController")); } PermissionRole permissionRole = db.PermissionRoles.Find(id); if (permissionRole == null) { return(RedirectToAction("HttpNotFoundError", "ErrorController")); } return(View(permissionRole)); }
public void UpdatePermissionForRole(PermissionRole thePermission) { if (thePermission.RoleHasPermission) { if (!PermissionIsAllowedForRole(thePermission.Role, thePermission.PermissionId)) { PermissionAdapter.InsertOperationForRole(thePermission.PermissionId, thePermission.Role); } } else { if (PermissionIsAllowedForRole(thePermission.Role, thePermission.PermissionId)) { PermissionAdapter.DeleteOperationForRole(thePermission.PermissionId, thePermission.Role); } } }
public static void AddPermissionsToRole(Person currentPerson, int roleId, List<int> permissionIds) { if (!currentPerson.HasPermission(Permissions.EditPermissions)) return; using (oikonomosEntities context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString)) { foreach (var permissionId in permissionIds) { PermissionRole pr = new PermissionRole() { RoleId = roleId, Changed = DateTime.Now, Created = DateTime.Now, PermissionId = permissionId }; context.PermissionRoles.AddObject(pr); } context.SaveChanges(); } }
public PermissionRole CreateRole(string roleName, List<PermissionDataAssignment> roleDataItems = null) { var item = new PermissionRole { Id = Guid.NewGuid().ToString(), RoleName = roleName, DataAssignmentList = roleDataItems }; _documentSession.Store(item); _documentSession.SaveChanges(); return item; }
public static void CreateNewChurch(Person currentPerson, ChurchSettingsViewModel churchSettings) { if (!currentPerson.HasPermission(Permissions.SystemAdministrator)) return; using (var context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString)) { var newChurch = new Church(); context.AddToChurches(newChurch); newChurch.Created = DateTime.Now; PopulateChurchModel(churchSettings, newChurch); newChurch.EmailLogin = "******"; newChurch.EmailPassword = "******"; newChurch.Country = "South Africa"; PopulateChurchAddress(churchSettings, context, newChurch); context.SaveChanges(); //Save Roles var currentChurchRoles = context.Roles.Where(r => (r.ChurchId == currentPerson.ChurchId && r.Name != "System Administrator")).ToList(); foreach (var currentRole in currentChurchRoles) { var newChurchRole = new Role(); context.AddToRoles(newChurchRole); newChurchRole.Created = DateTime.Now; newChurchRole.Changed = DateTime.Now; newChurchRole.Name = currentRole.Name; newChurchRole.DisplayName = currentRole.DisplayName; newChurchRole.ChurchId = newChurch.ChurchId; foreach (var permission in currentRole.PermissionRoles) { var newRolePerm = new PermissionRole(); context.AddToPermissionRoles(newRolePerm); newRolePerm.Created = DateTime.Now; newRolePerm.Changed = DateTime.Now; newRolePerm.PermissionId = permission.PermissionId; newChurchRole.PermissionRoles.Add(newRolePerm); } } context.SaveChanges(); //Update Role that can be set by any role foreach (var currentRole in currentChurchRoles) { var newRole = context.Roles.FirstOrDefault(r => (r.ChurchId == newChurch.ChurchId && r.Name == currentRole.Name)); foreach (var newRoleToSet in from roleToSet in currentRole.CanSetRoles where roleToSet.Name != "System Administrator" select context.Roles.FirstOrDefault(r => (r.ChurchId == newChurch.ChurchId && r.Name == roleToSet.Name))) { newRole.CanSetRoles.Add(newRoleToSet); } } context.SaveChanges(); var personAddress = new Address {Created = DateTime.Now, Changed = DateTime.Now, Line1 = string.Empty, Line2=string.Empty, Line3=string.Empty, Line4 = string.Empty}; context.AddToAddresses(personAddress); var churchAdministrator = new Person(); context.AddToPeople(churchAdministrator); churchAdministrator.Created = DateTime.Now; churchAdministrator.Changed = DateTime.Now; churchAdministrator.Firstname = churchSettings.ContactFirstname; churchAdministrator.Church = newChurch; churchAdministrator.Email = churchSettings.OfficeEmail; var churchAdministratorFamily = new Family(); context.AddToFamilies(churchAdministratorFamily); churchAdministratorFamily.FamilyName = churchSettings.ContactSurname; churchAdministratorFamily.Created = DateTime.Now; churchAdministratorFamily.Changed = DateTime.Now; churchAdministrator.Family = churchAdministratorFamily; churchAdministrator.Family.Address = personAddress; context.SaveChanges(); //Set the new persons role to administrator var personChurchRecord = new PersonChurch { Person = churchAdministrator, Church = newChurch, Role = context.Roles.First(r => (r.ChurchId == newChurch.ChurchId && r.Name == "Church Administrator")) }; context.AddToPersonChurches(personChurchRecord); context.SaveChanges(); //Update Church Optional Fields var churchOptionalFields = context.ChurchOptionalFields.Where(c=>c.ChurchId == currentPerson.ChurchId); foreach (var co in churchOptionalFields) { var newCo = new ChurchOptionalField(); context.AddToChurchOptionalFields(newCo); newCo.Created = DateTime.Now; newCo.Changed = DateTime.Now; newCo.ChurchId = newChurch.ChurchId; newCo.OptionalFieldId = co.OptionalFieldId; newCo.Visible = co.Visible; } context.SaveChanges(); } }
public static void CreateNewChurch(Person currentPerson, ChurchSettingsViewModel churchSettings) { if (currentPerson.HasPermission(common.Permissions.SystemAdministrator)) { using (oikonomosEntities context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString)) { var newChurch = new Church(); context.AddToChurches(newChurch); newChurch.Created = DateTime.Now; PopulateChurchModel(churchSettings, newChurch); newChurch.EmailLogin = "******"; newChurch.EmailPassword = "******"; PopulateChurchAddress(churchSettings, context, newChurch); context.SaveChanges(); //Save Roles var currentChurchRoles = context.Roles.Where(r => (r.ChurchId == currentPerson.ChurchId && r.Name != "System Administrator")).ToList(); foreach (var currentRole in currentChurchRoles) { var newChurchRole = new Role(); context.AddToRoles(newChurchRole); newChurchRole.Created = DateTime.Now; newChurchRole.Changed = DateTime.Now; newChurchRole.Name = currentRole.Name; newChurchRole.DisplayName = currentRole.DisplayName; newChurchRole.ChurchId = newChurch.ChurchId; foreach (var permission in currentRole.PermissionRoles) { var newRolePerm = new PermissionRole(); context.AddToPermissionRoles(newRolePerm); newRolePerm.Created = DateTime.Now; newRolePerm.Changed = DateTime.Now; newRolePerm.PermissionId = permission.PermissionId; newChurchRole.PermissionRoles.Add(newRolePerm); } } context.SaveChanges(); //Update Role that can be set by any role foreach (var currentRole in currentChurchRoles) { var newRole = context.Roles.Where(r => (r.ChurchId == newChurch.ChurchId && r.Name == currentRole.Name)).FirstOrDefault(); foreach (var roleToSet in currentRole.CanSetRoles) { if (roleToSet.Name != "System Administrator") { var newRoleToSet = context.Roles.FirstOrDefault(r => (r.ChurchId == newChurch.ChurchId && r.Name == roleToSet.Name)); newRole.CanSetRoles.Add(newRoleToSet); } } } context.SaveChanges(); var churchAdministrator = new Person(); context.AddToPeople(churchAdministrator); churchAdministrator.Created = DateTime.Now; churchAdministrator.Changed = DateTime.Now; churchAdministrator.Firstname = churchSettings.ContactFirstname; churchAdministrator.Church = newChurch; var churchAdministratorFamily = new Family(); context.AddToFamilies(churchAdministratorFamily); churchAdministratorFamily.FamilyName = churchSettings.ContactSurname; churchAdministratorFamily.Created = DateTime.Now; churchAdministratorFamily.Changed = DateTime.Now; churchAdministrator.Family = churchAdministratorFamily; context.SaveChanges(); //Set the new persons role to administrator churchAdministrator.RoleId = context.Roles.First(r => (r.ChurchId == newChurch.ChurchId && r.Name == "Church Administrator")).RoleId; context.SaveChanges(); //Update Church Optional Fields var churchOptionalFields = context.ChurchOptionalFields.Where(c=>c.ChurchId == currentPerson.ChurchId); foreach (var co in churchOptionalFields) { var newCo = new ChurchOptionalField(); context.AddToChurchOptionalFields(newCo); newCo.Created = DateTime.Now; newCo.Changed = DateTime.Now; newCo.ChurchId = newChurch.ChurchId; newCo.OptionalFieldId = co.OptionalFieldId; newCo.Visible = co.Visible; } context.SaveChanges(); } } }