public DetailsOfUser(int userId, string nameOfUser, string addressOfUser, string phoneOfUser, Permition permition) { this.userId = userId; this.nameOfUser = nameOfUser; this.addressOfUser = addressOfUser; this.phoneOfUser = phoneOfUser; this.permition = permition; }
public void Create_Permition(Permition permition, int id) { try { } catch (Exception ex) { //print exception on console Console.WriteLine(ex.Message); } }
public void SetUserPermition(int boardId, string nickname, Permition perm) { Board b = null; _repo.TryGetValue(boardId, out b); int position; switch (perm) { case Permition.Select: break; case Permition.None: if (b.AuthorisedUsersWrite != null && b.AuthorisedUsersWrite.Contains(nickname)) { position = b.AuthorisedUsersWrite.IndexOf(nickname); b.AuthorisedUsersWrite.RemoveAt(position); } if (b.AuthorisedUsersRead != null && b.AuthorisedUsersRead.Contains(nickname)) { position = b.AuthorisedUsersRead.IndexOf(nickname); b.AuthorisedUsersRead.RemoveAt(position); } break; case Permition.Reader: if (b.AuthorisedUsersRead == null) b.AuthorisedUsersRead = new List<string>(); if (b.AuthorisedUsersRead.Contains(nickname) == false) b.AuthorisedUsersRead.Add(nickname); if (b.AuthorisedUsersWrite != null && b.AuthorisedUsersWrite.Contains(nickname)) { position = b.AuthorisedUsersWrite.IndexOf(nickname); b.AuthorisedUsersWrite.RemoveAt(position); } break; case Permition.Writer: if (b.AuthorisedUsersWrite == null) b.AuthorisedUsersWrite = new List<string>(); if (b.AuthorisedUsersWrite.Contains(nickname) == false) b.AuthorisedUsersWrite.Add(nickname); if (b.AuthorisedUsersRead != null && b.AuthorisedUsersRead.Contains(nickname)) { position = b.AuthorisedUsersRead.IndexOf(nickname); b.AuthorisedUsersRead.RemoveAt(position); } break; } }
/// <summary> /// Вызывается самым последним в Page_Load /// </summary> protected override void Postload() { if (PK == null) { return; } Function limitByRole = _languageDef.GetFunction(_languageDef.funcEQ, new VariableDef(_languageDef.GuidType, "Role"), this.PK); LoadingCustomizationStruct lcsOwnUsers = new LoadingCustomizationStruct(null); lcsOwnUsers.LoadingTypes = new[] { typeof(LinkRole) }; lcsOwnUsers.LimitFunction = limitByRole; View usersView = Information.GetView("Sec_LinkRoleL", typeof(LinkRole)); lcsOwnUsers.View = usersView; List <LinkRole> roleOwnUsers = BridgeToDS.GetDataService().LoadObjects(lcsOwnUsers).Cast <LinkRole>().ToList(); if (IsPostBack) { #region Save Roles List <LinkRole> linkUsers = new List <LinkRole>(); foreach (Agent user in _allUsers) { string userKey = "User" + user.__PrimaryKey; if (Request.Form.AllKeys.Any(fk => fk.Contains(userKey))) { LinkRole linkUser = new LinkRole(); linkUser.Role = DataObject; linkUser.Agent = user; linkUsers.Add(linkUser); } } List <LinkRole> deletedUsers = new List <LinkRole>(); foreach (LinkRole ownUser in roleOwnUsers) { string ownId = ownUser.Agent.__PrimaryKey.ToString(); LinkRole singleOrDefault = linkUsers.SingleOrDefault(r => r.Agent.__PrimaryKey.ToString().Equals(ownId)); if (singleOrDefault != null) { linkUsers.Remove(singleOrDefault); } else { ownUser.SetStatus(ObjectStatus.Deleted); deletedUsers.Add(ownUser); } } roleOwnUsers = roleOwnUsers.Except(deletedUsers).Union(linkUsers).ToList(); linkUsers = linkUsers.Union(deletedUsers).ToList(); if (linkUsers.Count > 0) { DataObject[] dataObjects = linkUsers.Cast <DataObject>().ToArray(); BridgeToDS.GetDataService().UpdateObjects(ref dataObjects); } #endregion } GenerateUsersTable(roleOwnUsers); Function limitByAgent = _languageDef.GetFunction(_languageDef.funcEQ, new VariableDef(_languageDef.GuidType, "Agent"), this.PK); LoadingCustomizationStruct lcsParentRoles = new LoadingCustomizationStruct(null); lcsParentRoles.LoadingTypes = new[] { typeof(LinkRole) }; lcsParentRoles.LimitFunction = limitByAgent; View rolesView = Information.GetView("Sec_LinkRoleL", typeof(LinkRole)); lcsParentRoles.View = rolesView; List <LinkRole> parentRoles = BridgeToDS.GetDataService().LoadObjects(lcsParentRoles).Cast <LinkRole>().ToList(); Agent single = _allRoles.Single(r => r.__PrimaryKey.ToString().Equals(this.PK)); _allRoles.Remove(single); if (IsPostBack) { #region Save Roles List <LinkRole> linkRoles = new List <LinkRole>(); foreach (Agent role in _allRoles) { string roleKey = "Role" + role.__PrimaryKey; if (Request.Form.AllKeys.Any(fk => fk.Contains(roleKey))) { LinkRole linkRole = new LinkRole(); linkRole.Agent = DataObject; linkRole.Role = role; linkRoles.Add(linkRole); } } List <LinkRole> deletedRoles = new List <LinkRole>(); foreach (LinkRole ownRole in parentRoles) { string ownId = ownRole.Role.__PrimaryKey.ToString(); LinkRole singleOrDefault = linkRoles.SingleOrDefault(r => r.Role.__PrimaryKey.ToString().Equals(ownId)); if (singleOrDefault != null) { linkRoles.Remove(singleOrDefault); } else { ownRole.SetStatus(ObjectStatus.Deleted); deletedRoles.Add(ownRole); } } parentRoles = parentRoles.Except(deletedRoles).Union(linkRoles).ToList(); linkRoles = linkRoles.Union(deletedRoles).ToList(); if (linkRoles.Count > 0) { DataObject[] dataObjects = linkRoles.Cast <DataObject>().ToArray(); BridgeToDS.GetDataService().UpdateObjects(ref dataObjects); } #endregion } GenerateRolesTable(parentRoles); // Function limitByAgent = _languageDef.GetFunction(_languageDef.funcEQ, new VariableDef(_languageDef.GuidType, "Agent"), this.PK); LoadingCustomizationStruct lcsOwnClasses = new LoadingCustomizationStruct(null); lcsOwnClasses.LoadingTypes = new[] { typeof(Permition) }; lcsOwnClasses.LimitFunction = limitByAgent; View classesView = Information.GetView("Sec_PermitionE", typeof(Permition)); lcsOwnClasses.View = classesView; List <Permition> userOwnClasses = BridgeToDS.GetDataService().LoadObjects(lcsOwnClasses).Cast <Permition>().ToList(); List <Permissions> permissions = new List <Permissions>(); foreach (Subject @class in _allClasses) { Permissions u2c = new Permissions(); u2c.ObjectId = @class.__PrimaryKey.ToString(); u2c.ObjectName = @class.Name; Permition firstOrDefault = userOwnClasses.FirstOrDefault(c => c.Subject.__PrimaryKey.ToString().Equals(u2c.ObjectId)); if (firstOrDefault != null && firstOrDefault.Access != null) { for (int i = 0; i < firstOrDefault.Access.Count; i++) { Access access = firstOrDefault.Access[i]; switch (access.TypeAccess) { case tTypeAccess.Delete: u2c.Delete = true; break; case tTypeAccess.Execute: u2c.Execute = true; break; case tTypeAccess.Full: u2c.Full = true; break; case tTypeAccess.Insert: u2c.Insert = true; break; case tTypeAccess.Read: u2c.Read = true; break; case tTypeAccess.Update: u2c.Update = true; break; } } } permissions.Add(u2c); } if (IsPostBack) { #region Save Class Permissions List <Permissions> list = new List <Permissions>(); foreach (Subject @class in _allClasses) { string fullKey = "Full" + @class.__PrimaryKey; string readKey = "Read" + @class.__PrimaryKey; string insertKey = "Insert" + @class.__PrimaryKey; string updateKey = "Update" + @class.__PrimaryKey; string deleteKey = "Delete" + @class.__PrimaryKey; string executeKey = "Execute" + @class.__PrimaryKey; bool isClassPermissionsSet = false; Permissions permission = new Permissions(); permission.ObjectId = @class.__PrimaryKey.ToString(); permission.ObjectName = @class.Name; if (Request.Form.AllKeys.Any(fk => fk.Contains(fullKey))) { permission.Full = true; isClassPermissionsSet = true; } if (Request.Form.AllKeys.Any(fk => fk.Contains(readKey))) { permission.Read = true; isClassPermissionsSet = true; } if (Request.Form.AllKeys.Any(fk => fk.Contains(insertKey))) { permission.Insert = true; isClassPermissionsSet = true; } if (Request.Form.AllKeys.Any(fk => fk.Contains(updateKey))) { permission.Update = true; isClassPermissionsSet = true; } if (Request.Form.AllKeys.Any(fk => fk.Contains(deleteKey))) { permission.Delete = true; isClassPermissionsSet = true; } if (Request.Form.AllKeys.Any(fk => fk.Contains(executeKey))) { permission.Execute = true; isClassPermissionsSet = true; } if (isClassPermissionsSet) { list.Add(permission); } } List <Permissions> updatedPermissions = new List <Permissions>(); List <Permissions> deletedPermissions = new List <Permissions>(); foreach (Permissions p in permissions) { Permissions singleOrDefault = list.SingleOrDefault(c => c.ObjectId.Equals(p.ObjectId)); if (singleOrDefault != null) { updatedPermissions.Add(singleOrDefault); list.Remove(singleOrDefault); } else { deletedPermissions.Add(p); } } List <Permissions> addedPermissions = list.Union(updatedPermissions).ToList(); List <DataObject> deletedObjects = new List <DataObject>(); List <DataObject> addedObjects = new List <DataObject>(); foreach (Permition p in userOwnClasses) { string classId = p.Subject.__PrimaryKey.ToString(); if (updatedPermissions.Any(x => x.ObjectId.Equals(classId)) || deletedPermissions.Any(x => x.ObjectId.Equals(classId))) { p.SetStatus(ObjectStatus.Deleted); deletedObjects.Add(p); } } foreach (Permissions p in addedPermissions) { Permition permission = new Permition(); permission.Agent = DataObject; permission.Subject = new Subject(); permission.Subject.SetExistObjectPrimaryKey(p.ObjectId); permission.Access = new DetailArrayOfAccess(permission); if (p.Delete) { permission.Access.Add(new Access() { TypeAccess = tTypeAccess.Delete }); } if (p.Execute) { permission.Access.Add(new Access() { TypeAccess = tTypeAccess.Execute }); } if (p.Full) { permission.Access.Add(new Access() { TypeAccess = tTypeAccess.Full }); } if (p.Insert) { permission.Access.Add(new Access() { TypeAccess = tTypeAccess.Insert }); } if (p.Read) { permission.Access.Add(new Access() { TypeAccess = tTypeAccess.Read }); } if (p.Update) { permission.Access.Add(new Access() { TypeAccess = tTypeAccess.Update }); } addedObjects.Add(permission); } DataObject[] dataObjects = deletedObjects.Union(addedObjects).ToArray(); if (dataObjects.Length > 0) { BridgeToDS.GetDataService().UpdateObjects(ref dataObjects); } #endregion } GenerateClassesTable(permissions); }
//public IEnumerable<SelectListItem> listOfRoles { get; set; } public Permition GetPermition(PlayList b) { Permition p = new Permition(); if (!b.IsSharedWith(this.Nickname)) { p = Permition.None; } if (b.AuthorisedUsersRead != null) { if (b.AuthorisedUsersRead.Contains(this.Nickname)) p = Permition.Reader; } if (b.AuthorisedUsersWrite != null) { if (b.AuthorisedUsersWrite.Contains(this.Nickname)) p = Permition.Writer; } return p; }